from kafka import KafkaConsumer
import pickle
from bs4 import BeautifulSoup

# 1.创建KafkaConsumer连接实例，topic为scrapy
consumer = KafkaConsumer(
    "scrapy",
    # 本地Kafka服务器的9092默认端口
    bootstrap_servers=['127.0.0.1:9092']
)
# 2.进行数据处理方法
def scrapy(response):
    print(f'进行数据处理')
    # 把页面源代码交给BeautifulSoup进行处理，生成BS对象并指定html解析器
    pageHtml = BeautifulSoup(response.text, "html.parser")
    # 获取html内的div，div的class为tbl-body。里面包含着需要爬取的数据
    tableDiv = pageHtml.find("div", attrs={"class": "tbl-body"})
    # 获取所有的tr
    dataDiv = tableDiv.findAll("tr")
    # 删除第一个表头数据
    del (dataDiv[0])
    # 数据信息
    for data in dataDiv:
        # 得到每一行中的每一列
        oneData = data.findAll("td")
        # 输出数据
        #print(oneData)

# 3. 从topic为scrapy处获取到的数据，并处理
for data in consumer:
    resp = pickle.loads(data.value)
    print(f'从{resp.url}获取数据')
    # 数据处理
    scrapy(resp)
